package com.authine.cloudpivot.ext.dto.query;

import com.authine.cloudpivot.ext.Enum.SettleBusinessType;
import com.authine.cloudpivot.ext.Enum.SettleStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Builder
public class SettleQuery extends Page{

    @Schema(description = "ID")
    private String id;

    @Schema(description = "销售方组织ID")
    private List<String> sale_organization_id;
    @Schema(description = "销售方组织全名（收款组织）")
    private String sale_organization_name;
    @Schema(description = "购买方组织全名")
    private String purchase_organization_id;
    @Schema(description = "购买方组织全名")
    private String purchase_organization_name;
    @Schema(description = "发票号码")
    private String invoice_number;
    @Schema(description = "收款或付款时间(核销记录查询时代表核销时间,返回的字段中此字段也时核销时间)")
    private List<Date> confirm_time;
    @Schema(description = "付款时间")
    private List<Date> payment_time;
    @Schema(description = "支付方式")
    private String type;
    @Schema(description = "结算业务类型")
    private List<SettleBusinessType> business_type;
    @Schema(description = "状态")
    private List<SettleStatus> statuss;

    @Schema(description = "采购付款组织抬头")
    private String purchase_name;
    @Schema(description = "销售方银行账号")
    private String sale_bank_no;
    @Schema(description = "采购方银行账号")
    private String purchase_bank_no;

    @Schema(description = "可核销金额")
    private Double writeOffTotal;


}
